Computer Programming Custom UserForm Events এবং Interaction গাইড ও নোট

293

VBA তে Custom UserForm Events এবং Interaction

VBA তে UserForm হল একটি গ্রাফিক্যাল ইন্টারফেস যা ব্যবহারকারীর ইনপুট নিতে বা ডেটা প্রদর্শন করতে ব্যবহৃত হয়। UserForm তৈরি করতে এবং বিভিন্ন custom events ব্যবহার করে আপনি একটি অত্যন্ত ইন্টারঅ্যাকটিভ প্রোগ্রাম তৈরি করতে পারেন। Custom UserForm Events ব্যবহার করে আপনি ভিন্ন ভিন্ন কার্যক্রম বা ইন্টারঅ্যাকশন তৈরি করতে পারেন, যেমন: বোতাম ক্লিক, টেক্সট বক্সে লেখা, মাউস মুভমেন্ট ইত্যাদি।

এই উদাহরণে আমরা UserForm তৈরি করব এবং custom events দিয়ে তাদের সাথে ইন্টারঅ্যাক্ট করব। আমরা দেখব কিভাবে UserForm events কাজ করে এবং কিভাবে একে অন্যের সাথে interaction করে।


1. UserForm তৈরি করা

প্রথমে একটি UserForm তৈরি করতে হবে।

Steps:

  1. VBA Editor (Alt + F11) ওপেন করুন।
  2. Insert > UserForm সিলেক্ট করুন।
  3. UserForm-এর ভিতরে একটি Button এবং TextBox যোগ করুন। TextBox তে ব্যবহারকারী ইনপুট দিবে এবং Button ক্লিক করলে সেই ইনপুট প্রক্রিয়া সম্পন্ন হবে।

2. Custom UserForm Event Handling

VBA তে, আপনি UserForm এর events ব্যবহার করতে পারেন যেমন Click, Change, Initialize ইত্যাদি। এটি ব্যবহারকারীর ইন্টারঅ্যাকশন এবং UserForm এর কার্যপ্রবাহ নিয়ন্ত্রণ করতে সাহায্য করে।

UserForm Initialize Event:

UserForm এর যখন প্রথমবার ওপেন হয় তখন Initialize ইভেন্ট ট্রিগার হয়। আপনি এখানে ইনিশিয়াল সেটআপ বা ডিফল্ট মান সেট করতে পারেন।

Private Sub UserForm_Initialize()
    ' যখন UserForm প্রথম লোড হবে, তখন TextBox এ একটি ডিফল্ট মান দেয়া হবে
    TextBox1.Value = "Type your text here"
End Sub

এখানে, UserForm_Initialize ইভেন্টে TextBox1 এর মান প্রথমে "Type your text here" দিয়ে সেট করা হচ্ছে, যাতে ফর্ম লোড হওয়ার সময় এটি প্রদর্শিত হয়।


Button Click Event:

UserForm এ Button এর উপর ক্লিক করলে একটি ইভেন্ট ট্রিগার হয়। Button Click ইভেন্ট ব্যবহার করে আপনি নির্দিষ্ট কার্যক্রম সম্পাদন করতে পারেন।

Private Sub CommandButton1_Click()
    ' TextBox1 এ যে লেখা আছে তা MsgBox এ প্রদর্শন করা হবে
    MsgBox "You entered: " & TextBox1.Value
End Sub

এখানে, CommandButton1_Click ইভেন্টে যখন ব্যবহারকারী CommandButton1 ক্লিক করবেন, তখন TextBox1 এর মান একটি MsgBox এর মাধ্যমে প্রদর্শিত হবে।


TextBox Change Event:

যখন ব্যবহারকারী TextBox তে কিছু টাইপ করেন, তখন Change ইভেন্ট ট্রিগার হয়। আপনি এই ইভেন্ট ব্যবহার করে ব্যবহারকারীর ইনপুটের সাথে রিয়াক্ট করতে পারেন, যেমন ইনপুট যাচাই করা।

Private Sub TextBox1_Change()
    ' TextBox1 এর মান পরিবর্তন হলে তা মেসেজে প্রদর্শন করা হবে
    MsgBox "You typed: " & TextBox1.Value
End Sub

এখানে, TextBox1_Change ইভেন্টে প্রতিবার যখন TextBox1 এর মান পরিবর্তিত হবে, তখন ব্যবহারকারীর ইনপুট MsgBox এর মাধ্যমে দেখানো হবে।


3. Custom UserForm Interaction:

একটি UserForm এর ইন্টারঅ্যাকশন আরো কাস্টমাইজড হতে পারে। উদাহরণস্বরূপ, আপনি ComboBox, OptionButton বা ListBox ব্যবহার করে ব্যবহারকারীর ইনপুটের উপর ভিত্তি করে কার্যকলাপ পরিবর্তন করতে পারেন।

ComboBox Selection Change Event:

যখন ব্যবহারকারী ComboBox থেকে কোনো আইটেম নির্বাচন করেন, তখন Change ইভেন্ট ট্রিগার হয়।

Private Sub ComboBox1_Change()
    MsgBox "You selected: " & ComboBox1.Value
End Sub

এখানে, যখন ব্যবহারকারী ComboBox1 থেকে কোনো আইটেম নির্বাচন করবেন, তখন তার নির্বাচনটি MsgBox এর মাধ্যমে দেখানো হবে।


4. Multiple Controls Interaction:

একাধিক কন্ট্রোলের মধ্যে ইন্টারঅ্যাকশন করতে হলে, আপনি একাধিক ইভেন্ট হ্যান্ডলার তৈরি করতে পারেন। উদাহরণস্বরূপ, TextBox এবং ComboBox এর মান পরিবর্তন হলে Button সক্রিয় বা নিষ্ক্রিয় হতে পারে।

Private Sub ComboBox1_Change()
    ' ComboBox থেকে নির্বাচন হলে Button সক্রিয় হবে
    If ComboBox1.Value <> "" Then
        CommandButton1.Enabled = True
    Else
        CommandButton1.Enabled = False
    End If
End Sub

Private Sub TextBox1_Change()
    ' TextBox এ কিছু টাইপ করলে Button সক্রিয় হবে
    If TextBox1.Value <> "" Then
        CommandButton1.Enabled = True
    Else
        CommandButton1.Enabled = False
    End If
End Sub

এখানে, ComboBox1_Change এবং TextBox1_Change ইভেন্টের মাধ্যমে CommandButton1 সক্রিয় বা নিষ্ক্রিয় করা হচ্ছে, যখন ব্যবহারকারী একটি মান টাইপ করে বা ComboBox থেকে একটি মান নির্বাচন করে।


5. Closing UserForm with Custom Event

UserForm বন্ধ করার সময়ও আপনি কাস্টম ইভেন্ট ব্যবহার করতে পারেন। উদাহরণস্বরূপ, ফর্ম বন্ধ হওয়ার আগে একটি প্রম্পট দেখানো।

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Dim response As VbMsgBoxResult
    response = MsgBox("Do you really want to close?", vbYesNo)
    
    If response = vbNo Then
        Cancel = True ' Form বন্ধ হতে দেয়া হবে না
    End If
End Sub

এখানে, QueryClose ইভেন্টে ফর্ম বন্ধ হওয়ার আগে একটি প্রম্পট দেখানো হচ্ছে এবং ব্যবহারকারীর সিদ্ধান্ত অনুযায়ী ফর্মটি বন্ধ করা হচ্ছে না।


সারসংক্ষেপ:

  • Custom UserForm Events এর মাধ্যমে আপনি ব্যবহারকারী ইন্টারঅ্যাকশন ভিত্তিক প্রোগ্রাম তৈরি করতে পারেন। প্রতিটি কন্ট্রোলের ইভেন্ট (যেমন, Button Click, TextBox Change, ComboBox Selection) অনুযায়ী ব্যবহারকারীর সাথে ইন্টারঅ্যাকশন করা হয়।
  • UserForm ইভেন্টগুলি ব্যবহার করে আপনি ফর্মের আচরণ নিয়ন্ত্রণ করতে পারবেন, যেমন—ফর্ম লোড হওয়া, বোতাম ক্লিক হওয়া, টেক্সটবক্স পরিবর্তন হওয়া ইত্যাদি।
  • Multiple Control Interaction এর মাধ্যমে আপনি একাধিক কন্ট্রোলের সাথে কাজ করতে পারবেন এবং এগুলোর আচরণ একে অন্যের সাথে ইন্টারঅ্যাকটিভভাবে যুক্ত করতে পারবেন।
  • UserForm_QueryClose ইভেন্ট ব্যবহার করে আপনি ফর্ম বন্ধ হওয়ার আগে ব্যবহারকারীকে প্রম্পট দিতে পারেন, যা প্রোগ্রামের কার্যপ্রবাহে সহায়ক হতে পারে।

এই কৌশলগুলি ব্যবহার করে আপনি VBA তে অত্যন্ত ইন্টারঅ্যাকটিভ এবং ডাইনামিক UserForm তৈরি করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...